package com.liang.bishi.wy;

import java.util.Scanner;

/**
 * 9.21 网易笔试第一题--【最长连续最小子串】
 * 题目：小明家附近有两个超市A和B，商品种类相同。A超市更近，但B超市部分商品便宜，并且只能购买相邻的商品。小明最多在B超市采购一次，求其最低采购费用。
 * 36 87 47 55 51
 * 39 77 46 57 50
 * <p>
 * 265
 */
public class Problem1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] shopA = in.nextLine().split(" ");
        String[] shopB = in.nextLine().split(" ");
        int[] priceA = new int[shopA.length];
        int[] priceB = new int[shopA.length];
        for (int i = 0; i < shopA.length; i++) {
            priceA[i] = Integer.parseInt(shopA[i]);
            priceB[i] = Integer.parseInt(shopB[i]);
        }
        System.out.println(needMinMoney(priceA, priceB));
    }

    /**
     * 滑动窗口，求在B商店购买每个商品的所有区间的最小值
     * @param priceA A商店物品价格
     * @param priceB B商店物品价格
     * @return 购买所有物品的最低费用
     */
    public static int needMinMoney(int[] priceA, int[] priceB) {
        int n = priceA.length;
        // 初始化：假设所有商品都在A超市购买，计算总费用
        int totalCostA = 0;
        for (int price : priceA) {
            totalCostA += price;
        }
        // 使用滑动窗口找到最大节省
        int maxSaving = 0;  // 最大的节省金额
        int currentSaving = 0;  // 当前窗口的节省金额
        // 遍历B超市购买的连续商品的所有区间：[i, j]
        for (int i = 0; i < n; i++) {
            // 从 A 超市购买转为 B 超市购买能节省多少费用：[i, n]
            currentSaving = 0;
            for (int j = i; j < n; j++) {
                // 计算在B超市连续购买能节省多少
                currentSaving += priceA[j] - priceB[j];
                // 更新最大节省
                maxSaving = Math.max(maxSaving, currentSaving);
            }
        }
        // 结果是：所有商品在A超市的费用 - 在B超市能节省的最大金额
        return totalCostA - maxSaving;
    }

}
